<?xml version = '1.0' encoding = 'UTF-8'?>
<HBRRepo><variables><variable name="Version" type="member" usage="const" id="1" product="Planning"><property name="application">Vision</property><property name="dimensionInputMode">type</property><property name="dimensionType">Version</property><property name="prompt_text">ID_PRMTEXT_VERSION</property><value>"Working"</value><limits type="list"><property name="value">"Working","What If","Most Likely","Best Case","Worst Case"</property></limits></variable></variables><rulesets/><rules><rule id="1" name="NetIncome" product="Planning"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="display_label">Revenue Plan</property><variable_references><variable_reference name="Version" id="1"><property name="application">Vision</property><property name="hasvalue">true</property><property name="hidden">false</property><property name="rule_name">NetIncome</property><property name="seq">1</property><property name="type">3</property><property name="useAsOverrideValue">false</property></variable_reference></variable_references><statement seq="1" id="-100" type="template" name="SET COMMANDS"><template_ref name="SET commands" id="-5" product="Planning"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="comment">Enables you to enter script commands that optimize the performance of calculation scripts. You can include data volume, data handling, memory usage, threading and logging script commands.</property><property name="display_label">SET commands</property><property name="image">SET_COMMANDS</property><property name="Tile_Key">x1y0</property><template_prompts><restricted_prompt name="Application Type" type="Application Type" isPrompt="false"><value>Is Generic</value></restricted_prompt><restricted_prompt name="Application" type="Application" isPrompt="false"><value>Is Single Currency</value></restricted_prompt><template_slice_prompt name="UpperPOV" type="Member Range" isPrompt="false"/><restricted_prompt name="Essbase Mode" type="Essbase Mode" isPrompt="false"><value>Is Hybrid</value></restricted_prompt><restricted_prompt name="UPDATECALC" type="Restricted List" isPrompt="true"><value>Calculates all data blocks</value></restricted_prompt><restricted_prompt name="AGGMISSING" type="Restricted List" isPrompt="true"><value>Consolidate #MISSING values in the database</value></restricted_prompt><restricted_prompt name="CACHE" type="Restricted List" isPrompt="true"><value>No changes (Use System default)</value></restricted_prompt><restricted_prompt name="CALCPARALLEL" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt><template_prompt name="CALCTASKDIM" type="Numeric" isPrompt="true"/><restricted_prompt name="CLEARUPDATESTATUS" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt><restricted_prompt name="CREATEBLOCKONEQ" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt><restricted_prompt name="CREATEONMISSINGBLK" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt><restricted_prompt name="EMPTYMEMBERSETS" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt><restricted_prompt name="FRMLBOTTOMUP" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt><restricted_prompt name="FRMLRTDYNAMIC" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt><restricted_prompt name="LOCKBLOCK" type="Restricted List" isPrompt="true"><value>No changes (use system default)</value></restricted_prompt><restricted_prompt name="MSG" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt><restricted_prompt name="NOTICE" type="Restricted List" isPrompt="true"><value>No changes (Use default)</value></restricted_prompt><restricted_prompt name="REMOTECALC" type="Restricted List" isPrompt="true"><value>Default</value></restricted_prompt></template_prompts></template_ref></statement><statement seq="2" type="loop"><loop product="Planning" type="data"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="caption">Departmental Revenue Calc</property><property name="display_height">4</property><property name="display_width">9</property><property name="loop_type">meta</property><property name="Tile_Key">x2y0</property><test><expression><source><slice><dimension name="Year" seq="1"><expression><user_inp>&amp;NextYear</user_inp></expression></dimension><dimension name="Scenario" seq="2"><expression><user_inp>"Plan"</user_inp></expression></dimension><dimension name="Version" seq="3"><expression><user_inp>{Version}</user_inp></expression></dimension></slice></source></expression></test><statement seq="1" type="loop"><loop product="Planning" type="data"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="display_height">3</property><property name="display_width">6</property><property name="loop_type">meta</property><property name="Tile_Key">x3y0</property><test><expression><source><slice><dimension name="Period" seq="1"><expression><user_inp>"Jan":"Dec"</user_inp></expression></dimension><dimension name="Entity" seq="2"><expression><user_inp>@DESCENDANTS("403")</user_inp></expression></dimension></slice></source></expression></test><statement seq="1" type="loop"><loop product="Planning" type="data"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="display_height">2</property><property name="display_width">3</property><property name="loop_type">meta</property><property name="Tile_Key">x4y0</property><test><expression><source><slice><dimension name="Product" seq="1"><expression><user_inp>@CHILDREN("P_TP1"),@CHILDREN("P_TP2"),@CHILDREN("P_TP3")</user_inp></expression></dimension></slice></source></expression></test><statement seq="1" type="component" kind="formula" name=""><component type="formula" id="-104" name="" product="Planning"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="caption">Calculate Gross Margin</property><property name="disabled">false</property><property name="display_label">Calculate Gross Margin</property><formulae><conditionblock><formula><property name="formulatype">Formula</property><destination><user_inp>"Units"</user_inp></destination><expression><user_inp>@ROUND("Units",0)</user_inp></expression></formula><formula><property name="formulatype">Formula</property><destination><user_inp>"4110"</user_inp></destination></formula><formula><property name="formulatype">Formula</property><destination><user_inp>"4120":"4140"</user_inp></destination></formula><formula><property name="formulatype">Formula</property><destination><user_inp>"5110"</user_inp></destination></formula></conditionblock></formulae></component></statement></loop></statement><statement seq="2" type="component" kind="formula" name=""><component type="formula" id="-105" name="" product="Planning"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="caption">Sales Calls</property><property name="disabled">false</property><property name="display_label">Sales Calls</property><formulae><conditionblock><formula><property name="formulatype">Formula</property><destination><user_inp>"Sales Calls"</user_inp></destination></formula></conditionblock></formulae></component></statement></loop></statement><statement seq="2" type="component" kind="formula" name=""><component type="formula" id="-106" name="" product="Planning"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="caption">Bad Debt</property><property name="display_label">Bad Debt</property><formulae><conditionblock><formula><property name="formulatype">Formula</property><destination><user_inp>"7730"</user_inp></destination></formula></conditionblock></formulae></component></statement></loop></statement><statement seq="3" type="component" kind="script" name=""><component type="script" id="-107" name="" product="Planning"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="caption">Operating expenses</property><script type="calcscript">SET UPDATECALC OFF;
SET AGGMISSG ON;

FIX ("Plan",{Version},&amp;NextYear,@ICHILDREN("403"))
   @IDESCENDANTS("OpEx");
ENDFIX

LOOP(3)
FIX ("Plan",{Version},&amp;NextYear)
   FIX(@IDESCENDANTS("OpEx"),"Trips","Square Feet","9000","Average Salaries")
      CALC DIM ("Entity");
   ENDFIX
   ("Average Salaries" = @ROUND("5800" / "9000",2);
   "Employee Benefits %" = @ROUND("6100" / "5800",2);)
ENDFIX

/* Driver: 1 = % of Revenue, 2 = Units, 3 = Headcount Hours, 4 = Sales Calls, 5 = Trips, 6 = Square Feet, 7 = Input or Blank */
/*Method: 1 = Last Year Actual, 2 = Current Year Plan, 3 = Current Year Forecast */
FIX ("Plan",&amp;NextYear,"P_000")
	FIX (@RELATIVE("7001",0),@CHILDREN("403"))
  "Driver Volume" (
    IF (@ISMBR(@Relative("YearTotal",0)))
        IF ("Driver"->"BegBalance" ==1)
          "Driver Volume" = "4001"->"P_TP1"->{Version};
        ELSEIF ("Driver"->"BegBalance" ==2)
          "Driver Volume" = "Units"->"P_TP1"->{Version};
        ELSEIF ("Driver"->"BegBalance" ==3)
          "Driver Volume" = "9000"->{Version} * 2080/12;
        ELSEIF ("Driver"->"BegBalance" ==4)
          "Driver Volume" = "Sales Calls"->"BegBalance"->{Version}/12;
        ELSEIF ("Driver"->"BegBalance" ==5)
          "Driver Volume" = "Trips"->{Version};
        ELSEIF ("Driver"->"BegBalance" ==6)
          "Driver Volume" = "Square Feet"->{Version}/12;
        ELSEIF (("Driver"->"BegBalance" ==7 OR "Driver" == #missing) AND "Method"->"BegBalance" == 1)
          "Driver Volume" = "Actual"->&amp;ActVersion->&amp;LastYr;
        ELSEIF (("Driver"->"BegBalance" ==7 OR "Driver" == #missing) AND "Method"->"BegBalance" == 2)
          "Driver Volume" = "Plan"->&amp;PlanVersion->&amp;CurYr;
        ELSEIF (("Driver"->"BegBalance" ==7 OR "Driver" == #missing) AND "Method"->"BegBalance" == 3)
          "Driver Volume" = "Forecast"->&amp;ForVersion->&amp;CurYr;
        ENDIF
      ENDIF
	  )
	ENDFIX
ENDFIX

FIX ("Actual",&amp;LastYr,"P_000")
	FIX (@RELATIVE("7001",0),@CHILDREN("403"))
  "Driver Volume" (
    IF (@ISMBR(@Relative("YearTotal",0)))
        IF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==1)
          "Driver Volume" = "4001"->"P_TP1"->&amp;ActVersion;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==2)
          "Driver Volume" = "Units"->"P_TP1"->&amp;ActVersion;;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==3)
          "Driver Volume" = "9000"->&amp;ActVersion * 2080/12;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==4)
          "Driver Volume" = "Sales Calls"->"BegBalance"->&amp;ActVersion/12;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==5)
          "Driver Volume" = "Trips"->&amp;ActVersion;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==6)
          "Driver Volume" = "Square Feet"->&amp;ActVersion/12;
        ENDIF
      ENDIF
	  )
  "Driver Rate" (
    IF (@ISMBR("BegBalance"))
        IF ("Driver Volume"->"YearTotal" != #missing)
           "Driver Rate" = &amp;ActVersion->"YearTotal" / "Driver Volume"->"YearTotal";
        ENDIF
      ENDIF
	  )
	ENDFIX
ENDFIX

FIX ("Plan",&amp;CurYr,"P_000")
	FIX (@RELATIVE("7001",0),@CHILDREN("403"))
  "Driver Volume" (
    IF (@ISMBR(@Relative("YearTotal",0)))
        IF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==1)
          "Driver Volume" = "4001"->"P_TP1"->&amp;PlanVersion;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==2)
          "Driver Volume" = "Units"->"P_TP1"->&amp;PlanVersion;;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==3)
          "Driver Volume" = "9000"->&amp;PlanVersion * 2080/12;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==4)
          "Driver Volume" = "Sales Calls"->"BegBalance"->&amp;PlanVersion/12;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==5)
          "Driver Volume" = "Trips"->&amp;PlanVersion;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==6)
          "Driver Volume" = "Square Feet"->&amp;PlanVersion/12;
        ENDIF
      ENDIF
	  )
  "Driver Rate" (
    IF (@ISMBR("BegBalance"))
        IF ("Driver Volume"->"YearTotal" != #missing)
           "Driver Rate" = &amp;PlanVersion->"YearTotal" / "Driver Volume"->"YearTotal";
        ENDIF
      ENDIF
	  )
	ENDFIX
ENDFIX

FIX ("Forecast",&amp;CurYr,"P_000")
	FIX (@RELATIVE("7001",0),@CHILDREN("403"))
  "Driver Volume" (
    IF (@ISMBR(@Relative("YearTotal",0)))
        IF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==1)
          "Driver Volume" = "4001"->"P_TP1"->&amp;ForVersion;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==2)
          "Driver Volume" = "Units"->"P_TP1"->&amp;ForVersion;;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==3)
          "Driver Volume" = "9000"->&amp;ForVersion * 2080/12;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==4)
          "Driver Volume" = "Sales Calls"->"BegBalance"->&amp;ForVersion/12;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==5)
          "Driver Volume" = "Trips"->&amp;ForVersion;
        ELSEIF ("Driver"->"Plan"->&amp;NextYear->"BegBalance" ==6)
          "Driver Volume" = "Square Feet"->&amp;ForVersion/12;
        ENDIF
      ENDIF
	  )
  "Driver Rate" (
    IF (@ISMBR("BegBalance"))
        IF ("Driver Volume"->"YearTotal" != #missing)
           "Driver Rate" = &amp;ForVersion->"YearTotal" / "Driver Volume"->"YearTotal";
        ENDIF
      ENDIF
	  )
	ENDFIX
ENDFIX

FIX ("Plan",&amp;NextYear,"P_000")
	FIX (@RELATIVE("7001",0),@CHILDREN("403"))
  "Driver Rate" (
    IF (@ISMBR("BegBalance"))
        IF ("Driver" == 1)
          "Driver Rate" = "Rate Pct";
        ELSEIF (("Driver" == 7 OR "Driver" == #missing) AND "Method" != #missing)
          "Driver Rate" = 1 +"Rate Pct";
        ELSEIF ("Method" == 1)
           "Driver Rate" = @MDSHIFT("Driver Rate"->"Actual",-2,"Year",) * (1 + "Rate Pct"->"BegBalance");
        ELSEIF ("Method" == 2)
           "Driver Rate" = @MDSHIFT("Driver Rate"->"Plan",-1,"Year",) * (1 + "Rate Pct"->"BegBalance");
        ELSEIF ("Method" == 3)
           "Driver Rate" = @MDSHIFT("Driver Rate"->"Forecast",-1,"Year",) * (1 + "Rate Pct"->"BegBalance");
        ENDIF
      ENDIF
	  )
  {Version} = "Driver Volume" * "Driver Rate"->"BegBalance";
	ENDFIX
ENDFIX
ENDLOOP

</script></component></statement><statement seq="4" type="component" kind="script" name=""><component type="script" id="-108" name="" product="Planning"><property name="application">Vision</property><property name="plantype">Plan1</property><property name="caption">Aggregate</property><script type="calcscript">SET UPDATECALC OFF;
SET AGGMISSG ON;

FIX ({Version},&amp;NextYear);
   "Revised Plan" = "Plan" + "Adj Plan";
ENDFIX

FIX ("Plan","Revised Plan" ,"Adj Plan",{Version},&amp;NextYear)
   AGG ("Entity","Product");
ENDFIX</script></component></statement></rule></rules><components/><deployobjects><deployobject product="2" application="vision" plantype="plan1" obj_id="1" obj_type="1" name="NETINCOME"/></deployobjects></HBRRepo>